USE PGR_TSQL
GO

ALTER TABLE MENSAJERO ADD COL1 INT NULL
GO
ALTER TABLE MENSAJERO DROP COLUMN COL1
GO
ALTER TABLE MENSAJERO ALTER COLUMN ID_MENSAJERO INT NOT NULL
GO
ALTER TABLE MENSAJERO ALTER COLUMN NUMERO_TELEFONO VARCHAR(20) NULL
GO
SELECT * INTO MENSAJERO_COPIA FROM MENSAJERO
GO
DROP TABLE MENSAJERO_COPIA
GO

CREATE TABLE DETALLE_SOCIOS (
	ID_SOCIO		INT,
	PRIMER_NOMBRE	VARCHAR(50),
	PRIMER_APELLIDO	VARCHAR(50),
	FECHA_NACIMIENTO	DATE,
	DIRECCION		VARCHAR(200),
	CIUDAD		VARCHAR(50),
	ESTADO		VARCHAR(50),
	CORREO		VARCHAR(50),
	FECHA_INGRESO	DATE
)
GO
CREATE TABLE ASISTENCIA (
	ID_ASISTENCIA		INT,
	FECHA_ASISTENCIA	DATE,
	LUGAR			VARCHAR(200),
	ASISTIO_SOCIO		CHAR(1),
	ID_SOCIO		INT
)
GO
CREATE TABLE CATEGORIA (
	ID_CATEGORIA		INT,
	CATEGORIA		VARCHAR(20)
)
GO
CREATE TABLE FILME (
	ID_FILME		INT,
	NOMBRE_FILME	VARCHAR(50),
	ANIO_LANZAMIENTO	INT,
	SINOPSIS		VARCHAR(1000),
	DISPONIBLE_DVD	CHAR(1),
	CLASIFICACION		CHAR(1),
	ID_CATEGORIA		INT
)
GO
CREATE TABLE CATEGORIA_FAVORITA (
	ID_CATEGORIA		INT,
	ID_SOCIO		INT
)
GO

SELECT * INTO TEMP_MENSAJERO FROM MENSAJERO
GO
TRUNCATE TABLE MENSAJERO
GO
ALTER TABLE MENSAJERO DROP COLUMN ID_MENSAJERO
GO
ALTER TABLE MENSAJERO ADD ID_MENSAJERO INT IDENTITY(1,1) NOT NULL
GO
SET IDENTITY_INSERT MENSAJERO ON
GO
INSERT INTO MENSAJERO(ID_MENSAJERO, PRIMER_NOMBRE, PRIMER_APELLIDO, NUMERO_TELEFONO) 
SELECT ID_MENSAJERO, PRIMER_NOMBRE, PRIMER_APELLIDO, NUMERO_TELEFONO FROM TEMP_MENSAJERO
GO
SET IDENTITY_INSERT MENSAJERO OFF
GO
DROP TABLE TEMP_MENSAJERO
GO

SELECT PRIMER_APELLIDO, PRIMER_NOMBRE, CORREO, FECHA_INGRESO
FROM DETALLE_SOCIOS
GO
CREATE VIEW V_INFORMACION_MIEMBROS
AS
	SELECT PRIMER_APELLIDO, PRIMER_NOMBRE, CORREO, FECHA_INGRESO FROM DETALLE_SOCIOS
GO
SELECT * FROM V_INFORMACION_MIEMBROS
GO
ALTER VIEW V_INFORMACION_MIEMBROS
AS
	SELECT PRIMER_APELLIDO, PRIMER_NOMBRE, CORREO FROM DETALLE_SOCIOS
GO
DROP VIEW V_INFORMACION_MIEMBROS
GO

CREATE INDEX IDX_DETALLE_SOCIOS_APELLIDO
ON
	DETALLE_SOCIOS (PRIMER_APELLIDO)
GO
ALTER INDEX IDX_DETALLE_SOCIOS_APELLIDO ON DETALLE_SOCIOS REBUILD
GO
DROP INDEX IDX_DETALLE_SOCIOS_APELLIDO ON DETALLE_SOCIOS
GO

ALTER TABLE FILME
WITH NOCHECK ADD CONSTRAINT CK_FILME_ANIO CHECK ((ANIO_LANZAMIENTO > 2010))
GO
ALTER TABLE FILME DROP CONSTRAINT CK_FILME_ANIO
GO
ALTER TABLE FILME
WITH NOCHECK ADD CONSTRAINT CK_FILME_ANIO CHECK ((ANIO_LANZAMIENTO > 2005))
GO

CREATE TYPE USUARIO FROM VARCHAR(20)
GO
CREATE RULE USUARIO_DOMINIO
AS
	@USUARIO = LTRIM(RTRIM(@USUARIO))
	AND LOWER(@USUARIO) NOT IN ('ADMIN', 'ROOT', 'SYSTEM')
GO
EXEC SP_BINDRULE 'USUARIO_DOMINIO', 'USUARIO'
GO
CREATE TABLE USUARIOS (
	NOMBRE_USUARIO USUARIO NOT NULL
)
GO
INSERT INTO USUARIOS VALUES ('ADMIN')
GO
